//泛型接口
abstract class Cache<T> {
  getByKey(String key);
  void setByKey(String key, T Value);
}

class FileCache<T> implements Cache<T> {
  @override
  getByKey(String key) {
    return null;
  }

  @override
  void setByKey(String key, T value) {
    print('文件缓存: key = ${key} value = ${value}');
  }
}

void main(List<String> args) {
  FileCache s = FileCache<String>();
  s.setByKey('name', 'Ying');

  FileCache m = FileCache<Map>();
  m.setByKey('map', {'age': 18, 'wifi': '601'});
  //必须符合 <>中的数据类型才可以
  // m.setByKey('ce', 'value');
}
